package com.xpec.c4.db.model.log.basic;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.MappedSuperclass;

import com.xpec.c4.db.util.LogDBUtils;


/**
 * 各遊戲館log的基礎資料 
 *
 */
@MappedSuperclass
public class BaseGameInfoLogModel extends BasicLogModel {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -460310924153070009L;

	
	/**
	 * 機台號碼
	 */
	int machineNumber;

	/**
	 * 玩家ID
	 */
	String playerGUID;
	
	/**
	 * 玩家名稱
	 */
	String playerName;
	
	/**
	 * 遊戲名稱
	 */
	String gameName;
	
	/**
	 * 局號
	 */
	String roundNumber;
	
	/**
	 * 押注 - 金額
	 */
	long bet;
	
	/**
	 * 總玩家得分
	 */
	long score;
	
	/**
	 * 彩金
	 */
	long jackpot;
	
	/**
	 * 押注 - 幸運金
	 */
	long luckyCoin;
	
	/**
	 * 押注 -  體驗幣
	 */
	long trialCoin;
	
	/**
	 * 金幣(正式幣)
	 */
	long goldCoin;

	/**
	 * 輸贏 (最後獲得錢) (得分 + 彩金  - 押注)
	 */
	long gain;
	
	/**
	 * 玩家幸運金贏分
	 */
	BigDecimal expendluckymoney;
	
	/**
	 * 玩家金幣贏分
	 */
	BigDecimal expendmoney;
	
	/**
	 * 當下玩家剩餘金幣
	 */
	BigDecimal lastplayerMoney; 
	
	/**
	 * 當下玩家剩餘幸運金
	 */
	BigDecimal lastplayerluckyMoney;
	
	
	

	/**
	 * 遊戲訂單編號
	 */
	String orderId;
	
	/**
	 * 道具唯一碼
	 */
	String Itemguid;
	
	/**
	 * 道具編號
	 */
	String itemid;

	public void setItemid(String itemid) {
		this.itemid = itemid;
	}

	public BaseGameInfoLogModel(){
		super();
		roundNumber = LogDBUtils.getRandomString();
	}
	
	/**創建時間**/
	long createtime;
	
	/**歷史總投注**/
	BigDecimal historytotalbet;
	
	/**歷史總收入**/
	BigDecimal historyincome;
	
	/**歷史總支出**/
	BigDecimal historyexpend;
	
	/**歷史幸運金總押注**/
	BigDecimal historyluckytotalbet;
	
	/**歷史幸運金總支出**/
	BigDecimal historyluckyexpend;
	
	/**試玩幣總押注**/
	private BigDecimal trialtotalbet;
	/**試玩幣收入**/
	private BigDecimal trialincome;
	/**試玩幣支出**/
	private BigDecimal trialexpend;
	/**試玩幣當前水位**/
	private BigDecimal trialwaterlevel;
	
	/**機台歷史試玩幣總押注**/
	private BigDecimal historytrialtotalbet;
	/**機台歷史試玩幣總收入**/
	private BigDecimal historytrialtotalincome;
	/**機台歷史試玩幣總支出**/
	private BigDecimal historytrialtotalexpend;
	
	/**機台歷史試玩幣轉數**/
	private int historytrialtotalspin;
	
	/**歷史總spin數**/
	long historytotalspin;
	
	/**玩家來源ip**/
	String clientip;
	
	/**押注金額類別**/
	private String cointype;
	
	@Column(columnDefinition="int default 0")
	public int getHistorytrialtotalspin() {
		return historytrialtotalspin;
	}

	public void setHistorytrialtotalspin(int historytrialtotalspin) {
		this.historytrialtotalspin = historytrialtotalspin;
	}
	
	public int getMachineNumber() {
		return machineNumber;
	}

	public void setMachineNumber(int machineId) {
		this.machineNumber = machineId;
	}
	
	public String getItemguid() {
		return Itemguid;
	}

	public void setItemguid(String itemguid) {
		Itemguid = itemguid;
	}

	public String getItemid() {
		return itemid;
	}
	
	public String getOrderId() {
		return orderId;
	}

	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}
	
	public String getClientip() {
		return clientip;
	}

	public void setClientip(String clientip) {
		this.clientip = clientip;
	}

	public long getTrialCoin() {
		return trialCoin;
	}

	public void setTrialCoin(long trialCoin) {
		this.trialCoin = trialCoin;
	}
	
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getExpendluckymoney() {
		return expendluckymoney;
	}

	public void setExpendluckymoney(BigDecimal expendluckymoney) {
		this.expendluckymoney = expendluckymoney;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getExpendmoney() {
		return expendmoney;
	}

	public void setExpendmoney(BigDecimal expendmoney) {
		this.expendmoney = expendmoney;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getLastplayerMoney() {
		return lastplayerMoney;
	}

	
	public void setLastplayerMoney(BigDecimal lastplayerMoney) {
		this.lastplayerMoney = lastplayerMoney;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getLastplayerluckyMoney() {
		return lastplayerluckyMoney;
	}

	public void setLastplayerluckyMoney(BigDecimal lastplayerluckyMoney) {
		this.lastplayerluckyMoney = lastplayerluckyMoney;
	}
	

	public long getHistorytotalspin() {
		return historytotalspin;
	}

	public void setHistorytotalspin(long historytotalspin) {
		this.historytotalspin = historytotalspin;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getHistorytotalbet() {
		return historytotalbet;
	}

	public void setHistorytotalbet(BigDecimal historytotalbet) {
		this.historytotalbet = historytotalbet;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getHistoryincome() {
		return historyincome;
	}

	public void setHistoryincome(BigDecimal historyincome) {
		this.historyincome = historyincome;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getHistoryexpend() {
		return historyexpend;
	}

	public void setHistoryexpend(BigDecimal historyexpend) {
		this.historyexpend = historyexpend;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getHistoryluckytotalbet() {
		return historyluckytotalbet;
	}

	public void setHistoryluckytotalbet(BigDecimal historyluckytotalbet) {
		this.historyluckytotalbet = historyluckytotalbet;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getHistoryluckyexpend() {
		return historyluckyexpend;
	}

	public void setHistoryluckyexpend(BigDecimal historyluckyexpend) {
		this.historyluckyexpend = historyluckyexpend;
	}

	public long getCreatetime() {
		return createtime;
	}

	public void setCreatetime(long createtime) {
		this.createtime = createtime;
	}

	public String getPlayerGUID() {
		return playerGUID;
	}

	public String getPlayerName() {
		return playerName;
	}

	public String getGameName() {
		return gameName;
	}

	public String getRoundNumber() {
		return roundNumber;
	}

	public void setPlayerGUID(String playerGUID) {
		this.playerGUID = playerGUID;
	}

	public void setPlayerName(String playerName) {
		this.playerName = playerName;
	}

	public void setGameName(String gameName) {
		this.gameName = gameName;
	}

	public void setRoundNumber(String roundNumber) {
		this.roundNumber = roundNumber;
	}

	public long getBet() {
		return bet;
	}

	public long getScore() {
		return score;
	}

	public long getJackpot() {
		return jackpot;
	}

	public long getLuckyCoin() {
		return luckyCoin;
	}

	public long getGain() {
		return gain;
	}

	public void setBet(long bet) {
		this.bet = bet;
	}

	public void setScore(long score) {
		this.score = score;
	}

	public void setJackpot(long jackpot) {
		this.jackpot = jackpot;
	}

	public void setLuckyCoin(long luckyCoin) {
		this.luckyCoin = luckyCoin;
	}

	public void setGain(long gain) {
		this.gain = gain;
	}

	public long getGoldCoin() {
		return goldCoin;
	}

	public void setGoldCoin(long goldCoin) {
		this.goldCoin = goldCoin;
	}
	
	public String getCointype() {
		return cointype;
	}
	public void setCointype(String cointype) {
		this.cointype = cointype;
	}
	
	
	/**試玩幣總押注**/
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialtotalbet() {
		return trialtotalbet;
	}
	public void setTrialtotalbet(BigDecimal trialtotalbet) {
		this.trialtotalbet = trialtotalbet;
	}
	/**試玩幣總收入**/
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialincome() {
		return trialincome;
	}
	public void setTrialincome(BigDecimal trialincome) {
		this.trialincome = trialincome;
	}
	
	/**試玩幣支出**/
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialexpend() {
		return trialexpend;
	}
	public void setTrialexpend(BigDecimal trialexpend) {
		this.trialexpend = trialexpend;
	}
	
	/**試玩幣當前水位**/
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialwaterlevel() {
		return trialwaterlevel;
	}
	public void setTrialwaterlevel(BigDecimal trialwaterlevel) {
		this.trialwaterlevel = trialwaterlevel;
	}
	
	/**機台歷史試玩幣總押注**/
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getHistorytrialtotalbet() {
		return historytrialtotalbet;
	}
	public void setHistorytrialtotalbet(BigDecimal historytrialtotalbet) {
		this.historytrialtotalbet = historytrialtotalbet;
	}
	/**機台歷史試玩幣總收入**/
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getHistorytrialtotalincome() {
		return historytrialtotalincome;
	}
	public void setHistorytrialtotalincome(BigDecimal historytrialtotalincome) {
		this.historytrialtotalincome = historytrialtotalincome;
	}
	
	/**機台歷史試玩幣總支出**/
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getHistorytrialtotalexpend() {
		return historytrialtotalexpend;
	}
	public void setHistorytrialtotalexpend(BigDecimal historytrialtotalexpend) {
		this.historytrialtotalexpend = historytrialtotalexpend;
	}

}
